home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / a_man / cat1 / mrouted.z / mrouted
Encoding:
Text File  |  1998-10-20  |  21.8 KB  |  529 lines

  1.  
  2.  
  3.  
  4. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      mrouted - IP multicast routing daemon
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ////uuuussssrrrr////eeeettttcccc////mmmmrrrroooouuuutttteeeedddd [ ----pppp ] [ ----cccc _c_o_n_f_i_g__f_i_l_e ] [ ----dddd [ _d_e_b_u_g__l_e_v_e_l ] ]
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _M_r_o_u_t_e_d is an implementation of the Distance-Vector Multicast Routing
  16.      Protocol (DVMRP), an earlier version of which is specified in RFC-1075.
  17.      It maintains topological knowledge via a distance-vector routing protocol
  18.      (like RIP, described in RFC-1058), upon which it implements a multicast
  19.      datagram forwarding algorithm called Reverse Path Multicasting.
  20.  
  21.      _M_r_o_u_t_e_d forwards a multicast datagram along a shortest (reverse) path
  22.      tree rooted at the subnet on which the datagram originates. The multicast
  23.      delivery tree may be thought of as a broadcast delivery tree that has
  24.      been pruned back so that it does not extend beyond those subnetworks that
  25.      have members of the destination group. Hence, datagrams are not forwarded
  26.      along those branches which have no listeners of the multicast group. The
  27.      IP time-to-live of a multicast datagram can also be used to limit its
  28.      range.
  29.  
  30.      In order to support multicasting among subnets that are separated by
  31.      (unicast) routers that do not support IP multicasting, _m_r_o_u_t_e_d includes
  32.      support for "tunnels", which are virtual point-to-point links between
  33.      pairs of _m_r_o_u_t_e_ds located anywhere in an internet.  IP multicast packets
  34.      are encapsulated for transmission through tunnels, so that they look like
  35.      normal unicast datagrams to intervening routers and subnets.  The
  36.      encapsulation is added on entry to a tunnel, and stripped off on exit
  37.      from a tunnel.  The packets are encapsulated using the IP-in-IP protocol
  38.      (IP protocol number 4).
  39.  
  40.      The tunnelling mechanism allows _m_r_o_u_t_e_d to establish a virtual internet,
  41.      for the purpose of multicasting only, which is independent of the
  42.      physical internet, and which may span multiple Autonomous Systems.  This
  43.      capability is intended for experimental support of internet multicasting
  44.      only, pending widespread support for multicast routing by the regular
  45.      (unicast) routers.  _M_r_o_u_t_e_d suffers from the well-known scaling problems
  46.      of any distance-vector routing protocol, and does not (yet) support
  47.      hierarchical multicast routing or inter-operation with other multicast
  48.      routing protocols.
  49.  
  50.      _M_r_o_u_t_e_d handles multicast routing only; there may or may not be unicast
  51.      routing software running on the same machine as _m_r_o_u_t_e_d.  For example, an
  52.      Internet unicast firewall can function as a multicast router.  With the
  53.      use of tunnels, it is not necessary for _m_r_o_u_t_e_d to have access to more
  54.      than one physical subnet in order to perform multicast forwarding.
  55.  
  56. IIIINNNNVVVVOOOOCCCCAAAATTTTIIIIOOOONNNN
  57.      If no "-d" option is given, or if the debug level is specified as 0,
  58.      _m_r_o_u_t_e_d detaches from the invoking terminal.  Otherwise, it remains
  59.      attached to the invoking terminal and responsive to signals from that
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  71.  
  72.  
  73.  
  74.      terminal.  If "-d" is given with no argument, the debug level defaults to
  75.      2.  Regardless of the debug level, _m_r_o_u_t_e_d always writes warning and
  76.      error messages to the system log demon.  Non-zero debug levels have the
  77.      following effects:
  78.  
  79.      level 1
  80.           all syslog'ed messages are also printed to stderr.
  81.  
  82.      level 2
  83.           all level 1 messages plus notifications of "significant" events are
  84.           printed to stderr.
  85.  
  86.      level 3
  87.           all level 2 messages plus notifications of all packet arrivals and
  88.           departures are printed to stderr.
  89.  
  90.      Upon startup, mrouted writes its pid to the file /etc/mrouted.pid .
  91.  
  92. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
  93.      _M_r_o_u_t_e_d automatically configures itself to forward on all multicast-
  94.      capable interfaces, i.e., interfaces that have the IFF_MULTICAST flag set
  95.      (excluding the loopback "interface"), and it finds other _m_r_o_u_t_e_ds
  96.      directly reachable via those interfaces.  To override the default
  97.      configuration, or to add tunnel links to other _m_r_o_u_t_e_ds, configuration
  98.      commands may be placed in /etc/mrouted.conf (or an alternative file,
  99.      specified by the "-c" option).  There are four types of configuration
  100.      commands:
  101.  
  102.               phyint <local-addr>   [disable]   [metric <m>]
  103.                      [threshold <t>] [rate_limit <b>]
  104.                        [boundary (<boundary-name>|<scoped-addr>/<mask-len>)]
  105.                        [altnet <network>/<mask-len>]
  106.  
  107.               tunnel <local-addr> <remote-addr> [metric <m>]
  108.                      [threshold <t>] [rate_limit <b>]
  109.                        [boundary (<boundary-name>|<scoped-addr>/<mask-len>)]
  110.  
  111.               cache_lifetime <ct>
  112.  
  113.               pruning <off/on>
  114.  
  115.               name <boundary-name> <scoped-addr>/<mask-len>
  116.  
  117.  
  118.      The file format is free-form; whitespace (including newlines) is not
  119.      significant.  The _b_o_u_n_d_a_r_y and _a_l_t_n_e_t options may be specified as many
  120.      times as necessary.
  121.  
  122.      The phyint command can be used to disable multicast routing on the
  123.      physical interface identified by local IP address <local-addr>, or to
  124.      associate a non-default metric or threshold with the specified physical
  125.      interface.  The local IP address <local-addr> may be alternatively
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  137.  
  138.  
  139.  
  140.      replaced by the interface name (e.g., ec0).  If a phyint is attached to
  141.      multiple IP subnets, describe each additional subnet with the altnet
  142.      keyword.  Phyint commands must precede tunnel commands.
  143.  
  144.      The tunnel command can be used to establish a tunnel link between local
  145.      IP address <local-addr> and remote IP address <remote-addr>, and to
  146.      associate a non-default metric or threshold with that tunnel.  The local
  147.      IP address <local-addr> may be replaced by the interface name (e.g.,
  148.      ec0).  The remote IP address <remote-addr> may be replaced by a host
  149.      name, if and only if the host name has a single IP address associated
  150.      with it.  The tunnel must be set up in the mrouted.conf files of both
  151.      routers before it can be used.
  152.  
  153.      The cache_lifetime is a value that determines the amount of time that a
  154.      cached multicast route stays in kernel before timing out. The value of
  155.      this entry should lie between 300 (5 min) and 86400 (1 day). It defaults
  156.      to 300.
  157.  
  158.      The pruning <off/on> option is provided for _m_r_o_u_t_e_d to act as a non-
  159.      pruning router. It is also possible to start _m_r_o_u_t_e_d in a non-pruning
  160.      mode using the "-p" option on the command line. It is expected that a
  161.      router would be configured in this manner for test purposes only. The
  162.      default mode is pruning enabled.
  163.  
  164.      You may assign names to boundaries to make configuration easier with the
  165.      name keyword.  The boundary option on phyint or tunnel commands can
  166.      accept either a name or a boundary.
  167.  
  168.      The metric is the "cost" associated with sending a datagram on the given
  169.      interface or tunnel; it may be used to influence the choice of routes.
  170.      The metric defaults to 1 and you do not normally need to use a different
  171.      value.  There is no reason to use a metric greater than 1 for any tunnel
  172.      that is the only path to a sub-cluster of tunnels and subnets.  Metrics
  173.      should be kept as small as possible, because _m_r_o_u_t_e_d cannot route along
  174.      paths with a sum of metrics greater than 31.
  175.  
  176.      The threshold is the minimum IP time-to-live required for a multicast
  177.      datagram to be forwarded to the given interface or tunnel.  It is used to
  178.      control the scope of multicast datagrams.  (The TTL of forwarded packets
  179.      is only compared to the threshold, it is not decremented by the
  180.      threshold.  Every multicast router decrements the TTL by 1.)  The default
  181.      threshold is 1.  You need to use this parameter only if you want to
  182.      prevent ``local'' multicast traffic from traversing a link.  Suggested
  183.      Internet thresholds:
  184.  
  185.      32   for links that separate sites within an organization.
  186.  
  187.      64   for links that separate communities or organizations, and are
  188.           attached to the Internet MBONE.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  203.  
  204.  
  205.  
  206.      128  for links that separate continents on the MBONE.
  207.  
  208.      For example, if the networks in sites A and B are connected by a tunnel
  209.      with a threshold of 8, then site-specific multicast datagrams should use
  210.      a TTL of 7 to avoid traversing the tunnel.
  211.  
  212.      All _m_r_o_u_t_e_ds connected to a particular subnet or tunnel should use the
  213.      same metric and threshold for that subnet or tunnel to avoid connections
  214.      that only work in one direction.
  215.  
  216.      The rate_limit option allows the network administrator to specify a
  217.      certain bandwidth in Kbits/second which would be allocated to multicast
  218.      traffic.  It defaults to 500Kbps on tunnels, and 5Mbps on physical
  219.      interfaces. Set it to zero (0) to mean unlimited.
  220.  
  221.      The boundary option allows an interface to be configured as an
  222.      administrative boundary for the specified scoped address. Packets
  223.      belonging to this address will not be forwarded on a scoped interface.
  224.      The boundary option accepts either a name or a boundary spec.
  225.  
  226.      Here are some reasons why multicast datagrams may fail to traverse a
  227.      tunnel, even though _m_r_o_u_t_e_d is properly exchanging routes (i.e., shows
  228.      lots of entries in response to kill -USR1):
  229.  
  230.      +o programs use a TTL that is too small for the tunnel threshold (as
  231.        configured at the tunnel entry).
  232.  
  233.      +o there's a filtering router in the tunnel path that selectively discards
  234.        some IP datagrams such as IGMP packets or IP-over-IP encapsulated
  235.        multicast data packets.
  236.  
  237.      +o the two ends of tunnel are misconfigured, disagreeing on tunnel type
  238.        (encapsulating vs. source routing).
  239.  
  240.      _M_r_o_u_t_e_d will not initiate execution if it has fewer than two enabled
  241.      vifs, where a vif (virtual interface) is either a physical multicast-
  242.      capable interface or a tunnel.  It will log a warning if all of its vifs
  243.      are tunnels; such an _m_r_o_u_t_e_d configuration would be better replaced by
  244.      more direct tunnels (i.e., eliminate the middle man).
  245.  
  246. EEEEXXXXAAAAMMMMPPPPLLLLEEEE CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
  247.      This is an example configuration for a mythical multicast router at a big
  248.      school.
  249.  
  250.           #
  251.           # mrouted.conf example
  252.           #
  253.           # Name our boundaries to make it easier
  254.           name LOCAL 239.255.0.0/16
  255.           name EE 239.254.0.0/16
  256.           #
  257.           # xpi0 is our gateway to compsci, don't forward our
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  269.  
  270.  
  271.  
  272.           #     local groups to them
  273.           phyint xpi0 boundary EE
  274.           #
  275.           # xpi1 is our interface on the classroom net, it has four
  276.           #     different length subnets on it.
  277.           # note that you can use either an ip address or an
  278.           # interface name
  279.           phyint 172.16.12.38 boundary EE altnet 172.16.15.0/26
  280.                altnet 172.16.15.128/26 altnet 172.16.48.0/24
  281.           #
  282.           # atm0 is our ATM interface, which doesn't properly
  283.           #      support multicasting.
  284.           phyint atm0 disable
  285.           #
  286.           # This is an internal tunnel to another EE subnet
  287.           # Remove the default tunnel rate limit, since this
  288.           #   tunnel is over ethernets
  289.           tunnel 192.168.5.4 192.168.55.101 metric 1 threshold 1
  290.                rate_limit 0
  291.           #
  292.           # This is our tunnel to the outside world.
  293.           # Careful with those boundaries, Eugene.
  294.           tunnel 192.168.5.4 10.11.12.13 metric 1 threshold 32
  295.                boundary LOCAL boundary EE
  296.  
  297.  
  298. SSSSIIIIGGGGNNNNAAAALLLLSSSS
  299.      _M_r_o_u_t_e_d responds to the following signals:
  300.  
  301.      HUP  restarts _m_r_o_u_t_e_d . The configuration file is reread every time this
  302.           signal is evoked.
  303.  
  304.      TERM
  305.      INT  terminates execution gracefully (i.e., by sending good-bye messages
  306.           to all neighboring routers).
  307.  
  308.      USR1 dumps the internal routing tables to /var/tmp/mrouted.dump.
  309.  
  310.      QUIT dumps the internal routing tables to stderr (only if _m_r_o_u_t_e_d was
  311.           invoked with a non-zero debug level).
  312.  
  313. EEEEXXXXAAAAMMMMPPPPLLLLEEEE
  314.      The command
  315.  
  316.           /sbin/killall -USR1 mrouted
  317.  
  318.      dumps the routing tables to /var/tmp/mrouted.dump, which looks like this:
  319.  
  320.           Virtual Interface Table
  321.            Vif  Local-Address                    Metric  Thresh  Flags
  322.             0   36.2.0.8      subnet: 36.2          1       1    querier
  323.                               groups: 224.0.2.1
  324.  
  325.  
  326.                                                                         PPPPaaaaggggeeee 5555
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  334.  
  335.  
  336.  
  337.                                       224.0.0.4
  338.                              pkts in: 3456
  339.                             pkts out: 2322323
  340.  
  341.             1   36.11.0.1     subnet: 36.11         1       1    querier
  342.                               groups: 224.0.2.1
  343.                                       224.0.1.0
  344.                                       224.0.0.4
  345.                              pkts in: 345
  346.                             pkts out: 3456
  347.  
  348.             2   36.2.0.8      tunnel: 36.8.0.77     3       1
  349.                                peers: 36.8.0.77 (2.2)
  350.                           boundaries: 239.0.1
  351.                                     : 239.1.2
  352.                              pkts in: 34545433
  353.                             pkts out: 234342
  354.  
  355.             3   36.2.0.8     tunnel: 36.6.8.23      3       16
  356.  
  357.           Multicast Routing Table (1136 entries)
  358.            Origin-Subnet   From-Gateway    Metric Tmr In-Vif  Out-Vifs
  359.            36.2                               1    45    0    1* 2  3*
  360.            36.8            36.8.0.77          4    15    2    0* 1* 3*
  361.            36.11                              1    20    1    0* 2  3*
  362.  
  363.  
  364.      In this example, there are four vifs connecting to two subnets and two
  365.      tunnels.  The vif 3 tunnel is not in use (no peer address). The vif 0 and
  366.      vif 1 subnets have some groups present; tunnels never have any groups.
  367.      This instance of _m_r_o_u_t_e_d is the one responsible for sending periodic
  368.      group membership queries on the vif 0 and vif 1 subnets, as indicated by
  369.      the "querier" flags. The list of boundaries indicate the scoped addresses
  370.      on that interface. A count of the no. of incoming and outgoing packets is
  371.      also shown at each interface.
  372.  
  373.      Associated with each subnet from which a multicast datagram can originate
  374.      is the address of the previous hop router (unless the subnet is
  375.      directly-connected), the metric of the path back to the origin, the
  376.      amount of time since we last received an update for this subnet, the
  377.      incoming vif for multicasts from that origin, and a list of outgoing
  378.      vifs.  "*" means that the outgoing vif is connected to a leaf of the
  379.      broadcast tree rooted at the origin, and a multicast datagram from that
  380.      origin will be forwarded on that outgoing vif only if there are members
  381.      of the destination group on that leaf.
  382.  
  383.      _M_r_o_u_t_e_d also maintains a copy of the kernel forwarding cache table.
  384.      Entries are created and deleted by _m_r_o_u_t_e_d.
  385.  
  386.      The cache tables look like this:
  387.  
  388.  
  389.  
  390.  
  391.  
  392.                                                                         PPPPaaaaggggeeee 6666
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  400.  
  401.  
  402.  
  403.           Multicast Routing Cache Table (147 entries)
  404.            Origin             Mcast-group     CTmr  Age Ptmr IVif Forwvifs
  405.            13.2.116/22        224.2.127.255     3m   2m    -  0    1
  406.           >13.2.116.19
  407.           >13.2.116.196
  408.            138.96.48/21       224.2.127.255     5m   2m    -  0    1
  409.           >138.96.48.108
  410.            128.9.160/20       224.2.127.255     3m   2m    -  0    1
  411.           >128.9.160.45
  412.            198.106.194/24     224.2.135.190     9m  28s   9m  0P
  413.           >198.106.194.22
  414.  
  415.  
  416.      Each entry is characterized by the origin subnet number and mask and the
  417.      destination multicast group. The 'CTmr' field indicates the lifetime of
  418.      the entry.  The entry is deleted from the cache table when the timer
  419.      decrements to zero.  The 'Age' field is the time since this cache entry
  420.      was originally created.  Since cache entries get refreshed if traffic is
  421.      flowing, routing entries can grow very old.  The 'Ptmr' field is simply a
  422.      dash if no prune was sent upstream, or the amount of time until the
  423.      upstream prune will time out.  The 'Ivif' field indicates the incoming
  424.      vif for multicast packets from that origin.  Each router also maintains a
  425.      record of the number of prunes received from neighboring routers for a
  426.      particular source and group. If there are no members of a multicast group
  427.      on any downward link of the multicast tree for a subnet, a prune message
  428.      is sent to the upstream router. They are indicated by a "P" after the vif
  429.      number.  The Forwvifs field shows the interfaces along which datagrams
  430.      belonging to the source-group are forwarded. A "p" indicates that no
  431.      datagrams are being forwarded along that interface. An unlisted interface
  432.      is a leaf subnet with are no members of the particular group on that
  433.      subnet. A "b" on an interface indicates that it is a boundary interface,
  434.      i.e. traffic will not be forwarded on the scoped address on that
  435.      interface.  An additional line with a ">" as the first character is
  436.      printed for each source on the subnet.  Note that there can be many
  437.      sources in one subnet.
  438.  
  439. FFFFIIIILLLLEEEESSSS
  440.      /etc/mrouted.conf
  441.      /etc/mrouted.pid
  442.      /var/tmp/mrouted.dump
  443.      /var/tmp/mrouted.cache
  444.  
  445. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  446.      DVMRP is described, along with other multicast routing algorithms, in the
  447.      paper "Multicast Routing in Internetworks and Extended LANs" by S.
  448.      Deering, in the Proceedings of the ACM SIGCOMM '88 Conference.
  449.  
  450. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  451.      Steve Deering, Ajit Thyagarajan, Bill Fenner
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.                                                                         PPPPaaaaggggeeee 7777
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465. MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))                                                        MMMMRRRROOOOUUUUTTTTEEEEDDDD((((1111MMMM))))
  466.  
  467.  
  468.  
  469. NNNNOOOOTTTTEEEESSSS
  470.      By default, mrouted and its kernel module is not loaded on new systems.
  471.      You may need to explicitly install the _e_o_e._s_w._i_p_g_a_t_e subsystem in the
  472.      IRIX distribution to load it.  After you install that subsystem, you will
  473.      need to do these commands as _r_o_o_t:
  474.  
  475.           # autoconfig
  476.           # chkconfig mrouted on
  477.           # reboot
  478.  
  479.      to perform multicast routing.
  480.  
  481.      If you configure your machine to run mrouted and it is connected to a
  482.      network having MBONE connectivity or if you create a tunnel to a MBONE-
  483.      connected machine, please make sure you have the latest mrouted software.
  484.      Consult ftp://ftp.sgi.com/sgi/ipmcast/README for information on
  485.      availability of updated mrouted software.
  486.  
  487.      Older versions of _m_r_o_u_t_e_d (such as the version in IRIX 3.3 and 4.0.x)
  488.      encapsulate using IP source routing, which puts a heavy load on some
  489.      types of routers.  This version does not support IP source route
  490.      tunnelling.
  491.  
  492.      _m_r_o_u_t_e_d is only capable of supporting 32 multicast interfaces.
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.                                                                         PPPPaaaaggggeeee 8888
  525.  
  526.  
  527.  
  528.